var config = {
  serverHost: 'http://localhost:8080/'
}
const Hogan = require('hogan.js');

var _util = {
  request: function (param) {
    var _this = this;
    $.ajax({
      type: param.method || 'GET',
      url: param.url || '',
      dataType: param.type || 'json',
      data: param.data || '',
      success: function (res) {
        //请求成功，且服务器返回0
        if (0 === res.status) {
          typeof param.success === 'function' && param.success(res.data, res.message);
        }
        //请求成功，服务器返回1，表示错误
        else if (1 === res.status) {
          typeof param.error === 'function' && param.error(res.message);
        }
        //请求成功，服务器返回10，表示参数错误
        else if (10 === res.status) {
          typeof param.error === 'function' && param.error(res.message);
        }
        //请求成功，服务器返回11，表示需要登录
        else if (11 === res.status) {
          _this.toLogin();
        }
      },
      error: function (err) {
        //请求失败，服务器返回HTTP状态码不是200
        typeof param.error === 'function' && param.error(err.statusText);
      }

    });
  },
  dologin: function () {
    window.location.href = './login.html?redirect=' + encodeURIComponent(window.location.href); // 可以回退
  },
  getServerURL: function (path) {
    return config.serverHost + path;
  },

  // 获取 token（从 localStorage 读取）
  getToken: function () {
    return localStorage.getItem('token');
  },

  //错误提示
  errorTips: function (msg) {
    alert(msg || '出错啦～～～');
  },
  //成功提示
  successTips: function (msg) {
    alert(msg || '操作成功～～～');
  },
  //页面跳转时获取URL中的参数
  getURLParam: function (name) {
    //http://localhost:8099/aaa?a=1&b=2
    const paramString = window.location.search.substring(1);
    const regExp = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
    const result = paramString.match(regExp);
    return result ? decodeURIComponent(result[2]) : null;
  },
  //使用hogan.js渲染数据到网页上
  renderHTML: function (htmlTemplate, data) {
    const template = Hogan.compile(htmlTemplate);
    const result = template.render(data);
    return result;
  },
}

module.exports = _util;

